/**
 * @文件名 SetupInit.java
 * @包名 com.nutz.cngrain.tbw.init
 * @说明  声明应用启动时处理抽象类
 * @作者 wdfang
 * @时间 2013-1-27 上午12:56:35
 * @版本 V1.0
 */ 
package com.ykfk.cngrain.tbw.init;

import java.io.InputStream;
import java.util.Properties;

import org.apache.log4j.PropertyConfigurator;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.NutConfig;
import org.nutz.mvc.Setup;

import com.ykfk.cngrain.tbw.SysParameter;

/**
 * @类名 SetupInit
 * @描述 应用启动时处理抽象类
 * @作者 wdfang
 * @日期 2013-1-27 上午12:56:35
 * ========修改日志=======
 *
 */
public class SetupInit implements Setup{
	/**
	 * 调用日志接口
	 */
	private Log log = Logs.get();
	@Override
	public void init(NutConfig nutconfig) {
		/**
		 * 日志属性加载
		 */
		Log4jInit(nutconfig);
		/**
		 * 全局变量初始化
		 */
		setSysParameter(nutconfig);
	}

	@Override
	public void destroy(NutConfig nutconfig) {
		
	}
	
	/**
	 * 
	 * @名称 Log4jInit
	 * @描述 日志属性的加载
	 * @参数 @param nutconfig
	 * @返回值 void
	 * @作者 wdfang
	 * @时间 2013-1-29 下午4:15:13
	 */
	private void Log4jInit(NutConfig nutconfig) {
		try {
			log.info("log4j 属性初始化开始！ ...");
			String file = nutconfig.getServletContext().getInitParameter("log4j-config");
			
			InputStream is = nutconfig.getServletContext().getResourceAsStream(file);
			Properties props = new Properties();
			if (file == null)
				file = "/WEB-INF/classes/log4j.properties";
			if (file != null) {
				props.load(is);
				PropertyConfigurator.configure(props);
				log.info("log4j 属性初始化结束！ ...");
			}
		} catch (Exception e) {
			log.error(e);
		} 
	}
	/**
	 * 
	 * @名称 setSysParameter
	 * @描述  全局变量初始化
	 * @参数 @param nutconfig
	 * @返回值 void
	 * @作者 dfwang
	 * @时间 2013-2-20 上午10:34:14
	 */
	private void setSysParameter(NutConfig nutconfig) {
		/**
		 * 全局参数设定
		 * SysParameter中静态变量在此处赋值
		 */
		SysParameter.realPath = nutconfig.getServletContext().getRealPath("/");
	}
}
